A packet-based communication system includes packet switches for routing data packets through a communication network. Each packet switch in the communication network receives data packets at input ports of the packet switch and routes the data packets to output ports of the packet switch. In this way, the data packets are transmitted through the communication network. In some instances, a packet switch in the communication network receives data packets at more than one input port of the packet switch that are to be routed to the same output port of the packet switch. In these instances, an arbiter in the packet switch selects one of the input ports and routes the data packet from the selected input port to the output port. The arbiter repeats this process for the remaining input ports until each of the data packets is routed from a selected input port to the output port.
In one type of arbitration technique employed in a packet switch, the arbiter promotes fairness in selecting input ports of the packet switch by counting the number of data packets routed from each input port to the output ports of the packet switch. In this type of packet switch, a credit value is established for each input port of the packet switch and the arbiter decrements the credit value for each data packet routed from the input port to the output ports of the packet switch. Moreover, the arbiter selects input ports by giving preference to those input ports having higher credit values. In this type of packet switch, the credit values are replenished upon the occurrence of a condition in the packet switch, for example when one of the credit values is decremented to zero.
Although such an arbitration technique has been successful in promoting fairness for routing data packets through a packet in which the input ports have the same input bandwidths, this arbitration technique has been less successful in promoting fairness for routing data packets through a packet switch in which the input ports have various input bandwidths. In particular, the latency for routing a data packet received at an input port having a lower input bandwidth is often greater than the latency for routing a data packet received at an input port having a higher input bandwidth. As a result, the input port having the higher input bandwidth may wait a longer time to be selected by the arbiter than the input port having the lower input bandwidth, which reduces performance of the packet switch by increasing congestion and reducing data packet throughput in the packet switch. Performance is also reduced in the packet switch because the latencies of the data packets routed through the packet switch diverge from an average latency of routing a data packet through the packet switch.
In light of the above, a need exists for increasing performance of a packet switch including input ports having various input bandwidths.